home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 1.iso
/
ARGONET
/
PD
/
PROGRAMMING
/
DESKLIBC
/
SOURCES.ZIP
/
DeskLib
/
!DLSources
/
Libraries
/
Misc
/
c
/
Screen
next >
Wrap
Text File
|
1995-07-10
|
2KB
|
73 lines
/*
#### # # # #
# # # # # The FreeWare C library for
# # ## ### # # # # ### RISC OS machines
# # # # # # # # # # # ___________________________________
# # #### ### ## # # # #
# # # # # # # # # # Please refer to the accompanying
#### ### #### # # ##### # ### documentation for conditions of use
________________________________________________________________________
File: Screen.c
Author: Copyright © 1992 Jason Williams
Version: 1.00 (23 Mar 1992)
Purpose: Screen functions (read size, eig factors, etc.)
*/
#include "DeskLib:Wimp.h"
#include "DeskLib:SWI.h"
#include "DeskLib:Screen.h"
/*
JS 02 Apr 1995
Support for DLLs
*/
int screen_mode = -1;
wimp_point screen_size;
wimp_point screen_eig;
wimp_point screen_delta;
int screen_bpp;
#ifdef _DLL
int *Screen__Ref_mode( void) { return &screen_mode; }
wimp_point *Screen__Ref_size( void) { return &screen_size; }
wimp_point *Screen__Ref_eig( void) { return &screen_eig; }
wimp_point *Screen__Ref_delta( void) { return &screen_delta; }
int *Screen__Ref_bpp( void) { return &screen_bpp; }
#endif
#define ReadModeVar(m, v, r) SWI(3, 3, 0x20035, (m), (v), 0, 0, 0, (r))
#define SWI_XOS_Byte 0x20006
extern BOOL Screen_CacheModeInfo(void)
{
int oldmode = screen_mode;
SWI(1, 3, SWI_XOS_Byte, 135, NULL, NULL, &screen_mode);
if (oldmode == screen_mode)
return(FALSE);
ReadModeVar(-1, 9, &screen_bpp);
screen_bpp = 1 << screen_bpp;
ReadModeVar(-1, 4, &screen_eig.x);
ReadModeVar(-1, 5, &screen_eig.y);
screen_delta.x = 1 << screen_eig.x;
screen_delta.y = 1 << screen_eig.y;
ReadModeVar(-1, 11, &screen_size.x);
screen_size.x = (screen_size.x + 1) << screen_eig.x;
ReadModeVar(-1, 12, &screen_size.y);
screen_size.y = (screen_size.y + 1) << screen_eig.y;
return(TRUE);
}